# -*- coding: utf-8 -*- 
'''
Created on 2011-12-23

@author: TOM
'''
from django.db import models
from website.constant import RELATIONSHIPS_CHOICES, STUDENT_PURPORT_CHOICES, \
    STUDY_TYPES_CHOICES, SATISFACTION_CHOICES
from website.employecontrol.models import Employe
import datetime




#学生管理-->学生资源表--电邀师邀约学生基本信息表（通过网上购买的学生资源表）
#class StudentResource(models.Model):
#    name=models.CharField(max_length=50,blank=True, null=True)# 学生姓名
#    sex=models.IntegerField(max_length=1,blank=True, null=True)# 学生性别（1男 2女）
#    birthday=models.DateField(blank=True, null=True)# 学生出生日期 --非正式学生default current
#    school=models.CharField(max_length=255,blank=True, null=True)# 学生学校
#    grade=models.ForeignKey('resourcecontrol.Grade',blank=True, null=True,related_name='student_resource_grade')# 学生年级
#    company=models.ForeignKey('resourcecontrol.Company',blank=True, null=True,related_name='student_resource_school')    #校区
#    #根据学生基本信息表,增加下面两个字段
#    guardian_addr=models.CharField(max_length=255,blank=True, null=True)# 监护人家庭地址
#    rela_mobile=models.CharField(max_length=255,blank=True, null=True)# 联系电话
#    state=models.IntegerField(max_length=1,blank=True, null=True)# 状态(1有效 0无效)
#    deal_state=models.IntegerField(max_length=1,blank=True, null=True)# 状态(0未处理  1建议跟踪 2强烈建议跟踪 3有意向 4放弃)
#    load_time=models.DateField()#学生资源导入数据时间
#    remark=models.CharField(max_length=255,blank=True, null=True)# 备注

class StudentResource(models.Model):
    a=models.CharField(max_length=255)#班级
    b=models.CharField(max_length=255,blank=True, null=True)#学号
    c=models.CharField(max_length=255,blank=True, null=True)#学籍号
    d=models.CharField(max_length=255)#姓名
    e=models.CharField(max_length=255,blank=True, null=True)#曾用名
    f=models.CharField(max_length=255,blank=True, null=True)#性别
    g=models.CharField(max_length=255,blank=True, null=True)#出生日期
    h=models.CharField(max_length=255,blank=True, null=True)#身份证号
    i=models.CharField(max_length=255,blank=True, null=True)#政治面貌
    j=models.CharField(max_length=255,blank=True, null=True)#民族
    k=models.CharField(max_length=255,blank=True, null=True)#籍贯
    l=models.CharField(max_length=255,blank=True, null=True)#学生来源
    m=models.CharField(max_length=255,blank=True, null=True)#户口所在地
    n=models.CharField(max_length=255,blank=True, null=True)#家庭地址
    o=models.CharField(max_length=255,blank=True, null=True)#户口所在乡镇
    p=models.CharField(max_length=255,blank=True, null=True)#家长姓名
    q=models.CharField(max_length=255,blank=True, null=True)#联系电话
    r=models.CharField(max_length=255,blank=True, null=True)#数据提供人（员工姓名）
    s=models.IntegerField(max_length=1)#数据来源（1：公司资源， 2：市场拓展资源， 3：其它）
    t=models.ForeignKey(Employe,related_name='studentresource_employe')#员工ID(指派的电邀师)
    u=models.CharField(max_length=255,blank=True, null=True)#备注    
    v=models.IntegerField(max_length=1,blank=True, null=True)# 状态(1有效 0无效)
    w=models.IntegerField(max_length=1,blank=True, null=True)# 状态(0未处理  1建议跟踪 2强烈建议跟踪 3有意向 4放弃)

    

    
#学生管理-->学生资源回访表--电邀师邀约学生基本信息表（通过网上购买的学生资源表） -- 电话回访记录
class StudentResourceVisit(models.Model):
    student_resource=models.ForeignKey(StudentResource,blank=True, null=True,related_name='visit_student_resource')# 资源学生ID
    at_time=models.DateField()# 回访时间
    content=models.CharField(max_length=255,blank=True, null=True)# 回访内容
    remark=models.CharField(max_length=255,blank=True, null=True)# 备注


#学生管理-->学生热线登记表
class StudentHotline(models.Model):
    name=models.CharField(max_length=50,blank=True, null=True)# 学生姓名
    sex=models.IntegerField(max_length=1,blank=True, null=True)# 学生性别（1男 2女）
    #birthday=models.DateField(blank=True, null=True)# 学生出生日期 --非正式学生default current
    school=models.CharField(max_length=255,blank=True, null=True)# 学生学校
    grade=models.ForeignKey('resourcecontrol.Grade',blank=True, null=True,related_name='student_hotline_grade')# 学生年级
    company=models.ForeignKey('resourcecontrol.Company',blank=True, null=True,related_name='student_hotline_school')    #校区
    guardian_name=models.CharField(max_length=255,blank=True, null=True)# 监护人
    guardian_addr=models.CharField(max_length=255,blank=True, null=True)# 监护人家庭地址
    rela_mobile=models.CharField(max_length=255,blank=True, null=True)# 联系电话
    #state=models.IntegerField(max_length=1,blank=True, null=True)# 状态(1有效 0无效)
    #deal_state=models.IntegerField(max_length=1,blank=True, null=True)# 状态(0未处理  1建议跟踪 2强烈建议跟踪 3有意向 4放弃)
    at_time=models.DateField()# 登记时间
    talk_time=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 通话时长(分钟)
    employe=models.ForeignKey(Employe,blank=True, null=True,related_name='student_hotline_employe')#咨询师
    source=models.CharField(max_length=50,blank=True, null=True)#来源
    come_time=models.DateField()#预约时间
    remark=models.CharField(max_length=255,blank=True, null=True)# 备注



#学生管理-->学生基本信息表
class Student(models.Model):
    name=models.CharField(max_length=50)# 学生姓名
    sex=models.IntegerField(max_length=1)# 学生性别（1男 2女）
    birthday=models.DateField(blank=True, null=True)# 学生出生日期 --非正式学生default current
    school=models.CharField(max_length=255,blank=True, null=True)# 学生学校
    grade=models.ForeignKey('resourcecontrol.Grade',blank=True, null=True,related_name='student_grade')# 学生年级
    health=models.CharField(max_length=255,blank=True, null=True)# 学生健康状况
    relationship=models.IntegerField(max_length=1,choices=RELATIONSHIPS_CHOICES,blank=True, null=True)  # 学生同监护人关系
    company=models.ForeignKey('resourcecontrol.Company',blank=True, null=True,related_name='student_school')    #校区
    # 监护人信息
    guardian_name=models.CharField(max_length=255,blank=True, null=True)# 监护人健康状况
    guardian_cardno=models.CharField(max_length=30,blank=True, null=True)# 监护人身份证号码
    guardian_phone=models.CharField(max_length=20,blank=True, null=True)# 监护人家庭电话
    guardian_addr=models.CharField(max_length=255,blank=True, null=True)# 监护人家庭地址
    guardian_mobile=models.CharField(max_length=20,blank=True, null=True)# 监护人手机
    guardian_qq=models.CharField(max_length=20,blank=True, null=True)# 监护人QQ
    # 学生入学前学习状况
    class_ranking=models.CharField(max_length=50,blank=True, null=True)# 班级排名 
    school_ranking=models.CharField(max_length=50,blank=True, null=True)# 学校排名 
    exam_time=models.DateField(blank=True, null=True)# 考试时间
    yw=models.CharField(max_length=50,blank=True, null=True)# 语文
    sx=models.CharField(max_length=50,blank=True, null=True)# 数学
    yy=models.CharField(max_length=50,blank=True, null=True)# 英语
    wl=models.CharField(max_length=50,blank=True, null=True)# 物理
    hx=models.CharField(max_length=50,blank=True, null=True)# 化学
    sw=models.CharField(max_length=50,blank=True, null=True)# 生物
    ls=models.CharField(max_length=50,blank=True, null=True)# 历史
    zz=models.CharField(max_length=50,blank=True, null=True)# 政治
    dl=models.CharField(max_length=50,blank=True, null=True)# 地理
    student_state=models.IntegerField(max_length=1,choices=STUDENT_PURPORT_CHOICES)# 学生状态
    student_manager=models.ForeignKey(Employe,blank=True, null=True,related_name='student_manager')#学管师
    call_man=models.ForeignKey(Employe,blank=True, null=True,related_name='call_employe')# 预约人-提成20
    provide_man=models.ForeignKey(Employe,blank=True, null=True,related_name='provide_employe')# 资源提供人-提成100
    remark=models.CharField(max_length=255,blank=True, null=True)# 备注
    current_time=models.DateField(blank=True, null=True)# 当前时间




#学生管理-->培训合同信息表
class TrainingContract(models.Model):
    name=models.CharField(max_length=200,blank=True, null=True)#合同编码
    student=models.ForeignKey(Student,blank=True, null=True,related_name='contract_student')# 学生ID
    service_fee=models.DecimalField(max_digits=10, decimal_places=2) # 应收综合服务费
    education_fee=models.DecimalField(max_digits=10, decimal_places=2)#  应收教育咨询费
    traffic_fee=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 应收交通费
    service_fee_pay=models.DecimalField(max_digits=10, decimal_places=2) # 现金实收综合服务费
    education_fee_pay=models.DecimalField(max_digits=10, decimal_places=2)#  现金实收教育咨询费
    traffic_fee_pay=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 现金实收交通费
    service_fee_card=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True) # 卡实收综合服务费
    education_fee_card=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#  卡实收教育咨询费
    traffic_fee_card=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 卡实收交通费
    #service_ratio=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True) # 卡实收综合服务费
    education_ratio=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#  教育咨询费-折扣
    #traffic_fee_card=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)# 卡实收交通费
    tran_type=models.CharField(max_length=50,blank=True, null=True)# 接送方式  1专车 2校车
    tran_num=models.IntegerField(max_length=3,blank=True, null=True)# 接送次数
    tran_last=models.CharField(max_length=50,blank=True, null=True)# 接送期限
    begin_time=models.DateField();# 合同生效时间 
    end_time=models.DateField() ;# 合同失效时间 
    finish_time=models.DateField() ;# 合同签定时间
    contract_type=models.IntegerField(max_length=2,blank=True, null=True)#合同类型(1新签,2续费,3退费,4转介绍)
    state=models.IntegerField(max_length=2,blank=True, null=True)# 状态 0预制，1有效，2主管待审核,3财务待审核 ,4归档,5财务驳回,6主管驳回(0->2->3->1->4) 合同到期后归档
    create_man=models.ForeignKey(Employe,blank=True, null=True,related_name='create_employe')# 预制人
    audit_man=models.ForeignKey(Employe,blank=True, null=True,related_name='audit_employe')# 主管审核人
    audit_remark=models.CharField(max_length=255,blank=True, null=True)# 主管审核备注
    finance_audit_man=models.ForeignKey(Employe,blank=True, null=True,related_name='finance_audit_employe')# 财务审核人
    finance_audit_remark=models.CharField(max_length=255,blank=True, null=True)# 财务审核备注
    remark=models.CharField(max_length=255,blank=True, null=True)# 合同备注
    entering_man=models.ForeignKey(Employe,blank=True, null=True,related_name='entering_employe')# 合同录入人

    
    
#学生管理-->培训合同签定人信息表
class TrainingContractMans(models.Model):
    training_contract=models.ForeignKey(TrainingContract,blank=True, null=True,related_name='tcMans_training_contract')# 合同ID
    employe=models.ForeignKey('employecontrol.Employe',blank=True, null=True,related_name='tcMans_employe')# 员工ID
    ratio=models.CharField(max_length=10,blank=True, null=True) #  提成比例
    ret_ratio=models.CharField(max_length=10,blank=True, null=True) #  退费罚款比例
    

    
#学生管理-->合同明细表
class TrainingContractDetail(models.Model):
    training_contract=models.ForeignKey(TrainingContract,blank=True, null=True,related_name='contractdetail_contract')# 
    grade=models.ForeignKey('resourcecontrol.Grade',blank=True, null=True,related_name='contractdetail_grade')# 年级ID
    course=models.ForeignKey('resourcecontrol.Course',blank=True, null=True,related_name='contractdetail_course')# 课程ID
    study_type=models.IntegerField(max_length=1,choices=STUDY_TYPES_CHOICES)# 学习方式
    course_times=models.IntegerField(max_length=3)#单个课程-总课时
    old_price=models.DecimalField(max_digits=10, decimal_places=2)#原价
    current_price=models.DecimalField(max_digits=10, decimal_places=2)#当前购买价格
    rebate=models.DecimalField(max_digits=10, decimal_places=2,blank=True, null=True)#当前购买折扣
    total_prices=models.DecimalField(max_digits=10, decimal_places=2)#总价
    pay_prices=models.DecimalField(max_digits=10, decimal_places=2)#实收(现金)
    pay_card_prices=models.DecimalField(max_digits=10, decimal_places=2)#实收(卡)
    course_times_week=models.IntegerField(max_length=3)#每周安排课时

#学生管理-->合同付款明细表--暂不用
#class TrainingContractPayDetail(models.Model):
#    training_contract=models.ForeignKey(TrainingContract,blank=True, null=True,related_name='contractpaydetail_contract')# 
#    course=models.ForeignKey('resourcecontrol.Course',blank=True, null=True,related_name='contractpaydetail_course')# 课程ID
#    study_type=models.IntegerField(max_length=1,choices=STUDY_TYPES_CHOICES)# 学习方式
#    total_prices=models.DecimalField(max_digits=10, decimal_places=2)#总价
#    pay_prices=models.DecimalField(max_digits=10, decimal_places=2)#实收(现金)
#    pay_card_prices=models.DecimalField(max_digits=10, decimal_places=2)#实收(卡)
    
    

#学生管理-->学生回访记录表
class StudentVisit(models.Model):
    at_time=models.DateField() ;# 回访时间
    use_phone=models.CharField(max_length=50,blank=True, null=True)#使用电话(回访时使用的电话号码)
    student=models.ForeignKey(Student,blank=True, null=True,related_name='visit_student')# 回访学生ID
    parent_name=models.CharField(max_length=50,blank=True, null=True)#回访学生家长姓名
    parent_phone=models.CharField(max_length=50,blank=True, null=True)#回访学生家长电话
    satisfaction=models.IntegerField(max_length=1,choices=SATISFACTION_CHOICES)# 回访满意度
    visit_man=models.ForeignKey(Employe,blank=True, null=True,related_name='visit_employe')# 回访员工ID
    remark=models.CharField(max_length=255,blank=True, null=True)# 备注
    
    
#学生管理-->学生课后跟踪表
class StudentTrack(models.Model):
    at_time=models.DateField() ;# 跟踪时间
    student=models.ForeignKey(Student,blank=True, null=True,related_name='track_student')# 回访学生ID
    track_1=models.CharField(max_length=255,blank=True, null=True)# 第一次
    track_2=models.CharField(max_length=255,blank=True, null=True)# 第二次
    track_3=models.CharField(max_length=255,blank=True, null=True)# 第三次
    remark=models.CharField(max_length=255,blank=True, null=True)# 备注



